home *** CD-ROM | disk | FTP | other *** search
/ Aminet 15 / Aminet 15 - Nov 1996.iso / Aminet / comm / mail / thor23_main.lha / THOR_2.3 / UpdateThor < prev    next >
Text File  |  1996-05-28  |  34KB  |  1,264 lines

  1. ;*************************************************************************
  2. ;    Title:
  3. ;        UpdateThor
  4. ;*************************************************************************
  5. ;    Description:
  6. ;        Commodore Installer Script for the Thor 2.3 software
  7. ;*************************************************************************
  8. ;    Author:
  9. ;        Øyvind Ellefsen - versions for THOR upto 1.22
  10. ;       Petter Nilsen   - versions for 1.25 ->
  11. ;*************************************************************************
  12. ;    Still to do:
  13. ;        - THOR.macros might not be correct. Notify user?
  14. ;        - Handle previous installations with one of the env-vars/assigns
  15. ;          missing.
  16. ;        - Show .readme file
  17. ;       - Not delete catalogs/, only the needed dirs
  18. ;
  19. ;*************************************************************************
  20. ;
  21. ;******************************************************
  22. ;***** SET UP OUR VARIABLES AND OTHER SUCH STUFF ******
  23. ;******************************************************
  24.  
  25. ; some useful variables
  26.     (set 
  27.         true             1
  28.         false             0
  29.         yes             true
  30.         no                 false
  31.         is_a_file         1
  32.         is_a_dir         2
  33.         quote             "\""
  34.         newline         "\n"
  35.         tick             "'"
  36.         nothing         ""
  37.         bbspack         0
  38.         inetpack         0
  39.         #inetpackname     "thor23_inet.lha"
  40.         #bbspackname     "thor23_bbs.lha"
  41.         classact         0
  42.         tcptype         0
  43.         uucptype         0
  44.         V3_Update        no
  45.         cpu             (database "cpu")
  46.         cpu020             (and (<> cpu "68000") (<> cpu "68010"))
  47.         v39             (>= (/ (getversion "exec.library" (resident)) 65536) 39)
  48.     )
  49.  
  50. ; set up our delete options
  51.     (delopts "AskUser" "OkNoDelete" "Force")
  52.  
  53. ; some useful procedures
  54.     ; change userlevel to expert
  55.     (procedure expert_level
  56.         (
  57.             (user 2)
  58.         )
  59.     )
  60.  
  61. ; reset userlevel back to default
  62.     (procedure default_level
  63.         (
  64.             (user default-level)
  65.         )
  66.     )
  67.  
  68. ; store off userlevel
  69.     (procedure save_default_level
  70.         (
  71.             (set default-level @user-level)
  72.         )
  73.     )
  74.  
  75. ; some overused strings
  76. (set omp (cat "One moment please..." newline))
  77.  
  78. (set #classact "\n\n\nThe following is the default Install/Update Installer\n\nProcedure for placing ClassAct on your System.")
  79. ;********************************************************************
  80. ; ClassAct Install/Update Default Procedure by:
  81. ; Osma Ahvenlampi - Osma.Ahvenlampi@hut.fi
  82. ;********************************************************************
  83. ; I have disabled the (complete) settings
  84. (working #classact)
  85. ; ************* PLEASE COPY THIS PROCEDURE ALONG WITH THE STRINGS IT USES 
  86. ; ************* TO THE INSTALLER SCRIPT OF YOUR CLASSACT APPLICATION.
  87. ; ************* IT WILL TAKE CARE OF INSTALLING THE CLASSACT CLASSES YOU
  88. ; ************* PROVIDED WITH YOUR APPLICATION TO THE USER'S SYSTEM.
  89.  
  90. ; ClassAct installation procedure V 1.5 (12.5.96) by Osma Ahvenlampi
  91.  
  92. ; percentage of the size of included ClassAct classes versus the whole
  93. ; distribution (ie. total "complete" percentage after ClassAct is installed)
  94. (set classact-complete 50)
  95.  
  96. ; ClassAct installer scripts
  97. (set #classdest-prompt "Please select the directory where you want the ClassAct classes installed.\n(See help for details)")
  98. (set #classdest-help (cat "ClassAct is a GUI toolkit consisting of shared BOOPSI classes.\n\nSome programs require some or all of the ClassAct classes installed on your system. "
  99.     (if v39 (cat "OS 3.0 has a standard directory for BOOPSI classes, the SYS:Classes directory. It is recommended that you install ClassAct there.")
  100.             (cat "OS 2.0 does not have a standard place for disk resident BOOPSI classes. On OS 3.0 these classes are stored in the SYS:Classes directory. It is recommended that you create this directory and install ClassAct there.\nThis directory must be added in the LIBS: assign. This can be done by placing the command\nAssign >NIL: LIBS: SYS:Classes ADD\nto User-Startup. This installer will do this for you.")
  101.         )
  102.     )
  103. )
  104. (set #classes-020 "Do you want to use the OS 3.0, 020 optimised version of ClassAct?")
  105. (set #help-020 "Some ClassAct libraries have versions optimised for use on 020 or better equipped OS 3.0 or later machines. If your Amiga is such equipped, you should install these. The 68000/2.0 versions will also work, but are slightly slower.")
  106. (set #noclasses-message "The directory you selected for your ClassAct classes is not a part of the LIBS: assign.\n\nIt is necessary to add this assign so that the classes will be found properly.")
  107. (set #creating-dir "Creating directory ")
  108. (set #usbackup-prompt "User-Startup will now be backed up.")
  109. (set #usbackup-help "This installer will next make a modification in User-Startup. Before doing this the old User-Startup will be backed up to S:User-Startup.old")
  110. (set #adding-1 "Adding ")
  111. (set #adding-2 " to LIBS: assign\n")
  112. (set #adding-help "This is necessary so that the custom classes can be found.")
  113. (set #junod-button "It seems you have a late Commodore 'V42' button.gadget installed on your system.\n\nClassAct's button.gadget is far more capable than this gadget, and we recommend that you replace it. The ClassAct button.gadget is backwards compatible to the Commodore gadget. Do you wish to back up the Commodore gadget and replace it with the ClassAct version?")
  114. (set #junod-backed "The Commodore 'V42' button.gadget has been backed up with the name button.gadget.v42.\n\nThe ClassAct button.gadget will be installed in its place.")
  115. (set #junod-kept "The Commodore 'V42' button.gadget was not replaced with the more capable ClassAct version.\n\nPrograms depending on the availability of ClassAct-only features will be likely to work wrong.")
  116. (set #caprefs-message "CAPrefs is a small utility that sets some user preferences for ClassAct applications. These include the bevel style (Thin/Gadtools/Xen), window backfills, and group label details.\n\nPlease use the ClassAct GUI prefs editor to alter the default settings provided. ClassAct prefs will be installed in your system Prefs drawer.\n\n")
  117. (set #caprefs-startup-1 "Adding the command\n\n")
  118. (set #caprefs-startup-2 "\n\nTo your s:User-Startup.")
  119.  
  120. (procedure install-classact
  121. ; call this procedure to copy the classes included in the Classes directory
  122. ; in your distribution dir.
  123.     (if (exists "Classes") ; The archive contains a ClassAct library update.
  124.     (
  125.         (set comp-dest  (/ (* classact-complete 2) 10))
  126.         (set comp-libs  (/ (* classact-complete 3) 10))
  127.         (set comp-dirs  (/ (* classact-complete 4) 10))
  128.         (set comp-junod (/ (* classact-complete 5) 10))
  129.         (set comp-020   (/ (* classact-complete 6) 10))
  130.         (set comp-gad   (/ (* classact-complete 7) 10))
  131.         (set comp-im    (/ (* classact-complete 8) 10))
  132.         (set comp-prefs (/ (* classact-complete 9) 10))
  133.     
  134.         ; has the user installed ClassAct in CLASSACT: ?
  135.         (set @classact-dest (getassign "CLASSACT" "A"))
  136.         (if (= @classact-dest "") (set @classact-dest "SYS:Classes"))
  137.         
  138.         ; is ClassAct already in SYS:Classes ?
  139.         (if (or (not (exists (tackon @classact-dest "Gadgets/layout.gadget") (noreq)))
  140.                 (= @user-level 2))
  141.             ; no, ask where it should be placed
  142.             (set @classact-dest
  143.                 (askdir
  144.                     (prompt #classdest-prompt)
  145.                     (help #classdest-help)
  146.                     (default @classact-dest)
  147.                     (newpath)
  148.                 )
  149.             )
  150.         )
  151.         
  152.         (complete comp-dest)
  153.         
  154.         (if (<> (run (cat "C/CheckAssign LIBS: " @classact-dest)) 0)
  155.             (
  156.                 (message #noclasses-message)
  157.                 (if (not (exists @classact-dest))
  158.                     (makedir @classact-dest (prompt (cat #creating-dir @classact-dest)))
  159.                 )
  160.                 (set @addassign (cat "Assign >NIL: LIBS: " @classact-dest " ADD\n"))
  161.                 (startup "CLASSACT"
  162.                     (command @addassign)
  163.                     (prompt (cat #adding-1 @classact-dest #adding-2))
  164.                     (help #adding-help)
  165.                 )
  166.                 (run (@addassign))
  167.             )
  168.         )
  169.         
  170.         (complete comp-libs)
  171.         
  172.         (set @classact-gadgets (tackon @classact-dest "Gadgets"))
  173.         (set @classact-images (tackon @classact-dest "Images"))
  174.         
  175.         (if (not (exists @classact-gadgets (noreq)))
  176.             (makedir @classact-images
  177.                 (prompt (cat #creating-dir @classact-gadgets))
  178.             )
  179.         )
  180.         
  181.         (if (not (exists @classact-images (noreq)))
  182.             (makedir @classact-images
  183.                 (prompt (cat #creating-dir @classact-images))
  184.             )
  185.         )
  186.         
  187.         (complete comp-dirs)
  188.         
  189.         (if (exists "SYS:Classes/Gadgets/button.gadget")
  190.             (if (< 40 (/ (getversion "SYS:Classes/Gadgets/button.gadget") 65536))
  191.                 (if (askbool (prompt #junod-button) (help @askbool-help) (default 1))
  192.                     (
  193.                         (rename "SYS:Classes/Gadgets/button.gadget" "SYS:Classes/Gadgets/button.gadget.v42")
  194.                         (message #junod-backed)
  195.                     )
  196.                     (message #junod-kept)
  197.                 )
  198.             )
  199.         )
  200.         
  201.         (complete comp-junod)
  202.         
  203.         (if (exists "Classes/Gadgets/layout.gadget.020")
  204.             (set classes-020 (askbool (prompt #classes-020) (help #help-020) (default (and cpu020 v39))))
  205.             (set classes-020 0)
  206.         )
  207.  
  208.         (complete comp-020)
  209.         
  210.         (foreach "Classes/Gadgets" "#?.gadget"
  211.             (
  212.                 (set thislib (tackon "Classes/Gadgets" @each-name))
  213.                 (if (and classes-020 (exists (cat thislib ".020")))
  214.                     (set thislib (cat thislib ".020"))
  215.                 )
  216.                 (copylib (source thislib)
  217.                     (dest @classact-gadgets)
  218.                     (newname @each-name)
  219.                     (prompt (cat #installing @each-name))
  220.                     (help #classdest-help)
  221.                     (optional "force" "askuser")
  222.                 )
  223.             )
  224.         )
  225.         
  226.         (complete comp-gad)
  227.         
  228.         (foreach "Classes/Images" "#?.image"
  229.             (
  230.                 (set thislib (tackon "Classes/Images" @each-name))
  231.                 (if (and classes-020 (exists (cat thislib ".020")))
  232.                     (set thislib (cat thislib ".020"))
  233.                 )
  234.                 (copylib (source thislib)
  235.                     (dest @classact-images)
  236.                     (newname @each-name)
  237.                     (prompt (cat #installing @each-name))
  238.                     (help #classdest-help)
  239.                     (optional "force" "askuser")
  240.                 )
  241.             )
  242.         )
  243.         
  244.         (complete comp-im)
  245.  
  246.         (foreach "Classes" "#?.class"
  247.             (
  248.                 (set thislib (tackon "Classes" @each-name))
  249.                 (if (and classes-020 (exists (cat thislib ".020")))
  250.                     (set thislib (cat thislib ".020"))
  251.                 )
  252.                 (copylib (source thislib)
  253.                     (dest @classact-dest)
  254.                     (newname @each-name)
  255.                     (prompt (cat #installing @each-name))
  256.                     (help #classdest-help)
  257.                     (optional "force" "askuser")
  258.                 )
  259.             )
  260.         )
  261.     )
  262.     )
  263.     (if (exists "Prefs/ClassAct") ; The archive contains ClassAct prefs tools
  264.     (
  265.         (message #caprefs-message)
  266.         
  267.         (copylib (source "Prefs/CAPrefs") 
  268.             (dest "C:") 
  269.             (prompt (cat #installing "CAPrefs"))
  270.         )
  271.         (copylib (source "Prefs/ClassAct")
  272.             (dest "SYS:Prefs")
  273.             (prompt (cat #installing "ClassAct Prefs"))
  274.             (infos)
  275.         )
  276.         
  277.         (complete comp-prefs)
  278.         
  279.         (if (not (exists "ENVARC:ClassAct" (noreq)))
  280.             (
  281.                 (makedir "ENVARC:ClassAct"
  282.                     (prompt (cat #creating-dir "ENVARC:ClassAct"))
  283.                 )
  284.                 (textfile (dest "ENVARC:ClassAct/ClassAct")
  285.                     (append "")
  286.                 )
  287.             )
  288.         )
  289.                 
  290.         (set caprefs-cmd "C:CAPrefs >NIL:\n")
  291.         
  292.         (startup "CAPREFS"
  293.             (prompt (cat #caprefs-startup-1 caprefs-cmd #caprefs-startup-2))
  294.             (help #caprefs-message)
  295.             (command caprefs-cmd)
  296.         )
  297.     )
  298.     )
  299.  
  300.     (complete classact-complete)
  301. )
  302.  
  303. ; ************** END OF CLASSACT INSTALL PROCEDURE. COPY THE BLOCK ABOVE
  304. ; ************** TO YOUR CLASSACT APPLICATION INSTALLER.
  305.  
  306. ; ---------------------------------------------------------------------------
  307.  
  308. (procedure WAITX (set X 1) ( (while (< X 100)  (set X (+ X 1)) )  ) )
  309.  
  310. (working "\n\n\n\n\n\n\n\n\n\n\n\n\nTHOR 2.3") (WAITX)
  311. (working "\n\n\n\n\n\n\n\n\n\n\n\nTHOR 2.3") (WAITX)
  312. (working "\n\n\n\n\n\n\n\n\n\n\nTHOR 2.3") (WAITX)
  313. (working "\n\n\n\n\n\n\n\n\n\nTHOR 2.3") (WAITX)
  314. (working "\n\n\n\n\n\n\n\n\nTHOR 2.3") (WAITX)
  315. (working "\n\n\n\n\n\n\n\nTHOR 2.3") (WAITX)
  316. (working "\n\n\n\n\n\n\nTHOR 2.3") (WAITX)
  317. (working "\n\n\n\n\n\nTHOR 2.3") (WAITX)
  318. (working "\n\n\n\n\nTHOR 2.3") (WAITX)
  319. (working "\n\n\n\nTHOR 2.3") (WAITX)
  320. (working "\n\n\nTHOR 2.3") (WAITX)
  321. (working "\n\nTHOR 2.3") (WAITX)
  322. (working "\n\nTHOR 2.3") (WAITX)
  323. (working "\nTHOR 2.3") (WAITX)
  324. (working "\nTHOR 2.3") (WAITX)
  325.  
  326. (working "\nTHOR 2.3\n\n\n\n\n\n\n\n\n\n\n\nby") (WAITX)
  327. (working "\nTHOR 2.3\n\n\n\n\n\n\n\n\n\n\nby") (WAITX)
  328. (working "\nTHOR 2.3\n\n\n\n\n\n\n\n\n\nby") (WAITX)
  329. (working "\nTHOR 2.3\n\n\n\n\n\n\n\n\nby") (WAITX)
  330. (working "\nTHOR 2.3\n\n\n\n\n\n\n\nby") (WAITX)
  331. (working "\nTHOR 2.3\n\n\n\n\n\n\nby") (WAITX)
  332. (working "\nTHOR 2.3\n\n\n\n\n\nby") (WAITX)
  333. (working "\nTHOR 2.3\n\n\n\n\nby") (WAITX)
  334. (working "\nTHOR 2.3\n\n\n\nby") (WAITX)
  335. (working "\nTHOR 2.3\n\n\nby") (WAITX)
  336. (working "\nTHOR 2.3\n\n\nby") (WAITX)
  337.  
  338. (working "\nTHOR 2.3\n\n\nby\n\n\n\n\n\n\n\n\nUltima Thule Software") (WAITX) 
  339. (working "\nTHOR 2.3\n\n\nby\n\n\n\n\n\n\n\nUltima Thule Software") (WAITX) 
  340. (working "\nTHOR 2.3\n\n\nby\n\n\n\n\n\n\nUltima Thule Software") (WAITX) 
  341. (working "\nTHOR 2.3\n\n\nby\n\n\n\n\n\nUltima Thule Software") (WAITX) 
  342. (working "\nTHOR 2.3\n\n\nby\n\n\n\n\nUltima Thule Software") (WAITX) 
  343. (working "\nTHOR 2.3\n\n\nby\n\n\n\nUltima Thule Software") (WAITX) 
  344. (working "\nTHOR 2.3\n\n\nby\n\n\nUltima Thule Software") (WAITX) 
  345.  
  346. (message "\n\n\nTHOR 2.3\n\n\nby\n\n\nUltima Thule Software") (WAITX) 
  347.  
  348. (welcome)
  349.  
  350. ; first reset the user level so that the novice can see whats going on
  351.     (save_default_level)
  352.     (expert_level)
  353.  
  354. ;Make assign to install from
  355.     (makeassign "Thor_Install" "" (safe))
  356.  
  357.  
  358. ;******************
  359. ;** Check Memory **
  360. ;******************
  361.  
  362. (run "Avail flush")
  363.  
  364. (set Running (run "Thor_Install:CheckForLib"))
  365.  
  366. (while (= Running 20)
  367.       ((Message newline "Thor seem to be running, you MUST close it NOW."    
  368.         newline "If you don't, the installation will fail!")
  369.     (run "Avail flush")
  370.     (set Running (run "Thor_Install:CheckForLib")))
  371. )
  372.  
  373. ;************************
  374. ;** Start Installation **
  375. ;************************
  376.  
  377. (if (exists "ENV:THOR/THORPath" (noreq))
  378.     ; Then
  379.     (
  380.         (if (set Thor_Dir (getenv "THOR/THORPath"))
  381.             (
  382.                 (set Thor_Dir (substr Thor_Dir 0 (- (strlen Thor_Dir) 1)))
  383.                 (set Thor_Dir (expandpath Thor_Dir))
  384.                 (set V3_Update yes)
  385.                 (makeassign "Thor" Thor_Dir (safe))
  386.             )
  387.             ; Else
  388.             (
  389.                 (if (exists "Thor:libs/bbsread.library" (noreq))
  390.                     (
  391.                         ; Then
  392.                         (    
  393.                             (set Thor_Dir (expandpath "Thor:"))
  394.                         )
  395.                         ; Else
  396.                         (
  397.                             (set end_text "Please use the InstallThor script for a first-time installation.")
  398.                             (abort end_text)
  399.                         )
  400.                     )
  401.                 )
  402.             )
  403.         )
  404.     )
  405.     ; Else
  406.     (
  407.         (if (exists "Thor:libs/bbsread.library" (noreq))
  408.             ; Then
  409.             (    
  410.                 (set Thor_Dir (expandpath "Thor:"))
  411.             )
  412.             ; Else
  413.             (
  414.                 (set end_text "Please use the InstallThor script for a first-time installation.")
  415.                 (abort end_text)
  416.             )
  417.         )
  418.     )
  419. )
  420.  
  421. (if (exists "ENV:THOR/THORPath" (noreq))
  422.     ; Then
  423.     (
  424.         (if (set BBSData_Dir (getenv "THOR/BBSDataPath"))
  425.             (
  426.                 (set BBSData_Dir (substr BBSData_Dir 0 (- (strlen BBSData_Dir) 1)))
  427.                 (set BBSData_Dir (expandpath BBSData_Dir))
  428.                 (set V3_Update yes)
  429.                 (makeassign "BBSData" BBSData_Dir (safe))
  430.             )
  431.             ; Else
  432.             (
  433.                 (if (exists "BBSData:global.config" (noreq))
  434.                     ; Then
  435.                     (
  436.                         (set BBSData_Dir (expandpath "BBSData:"))
  437.                     )
  438.                     ; Else
  439.                     (
  440.                         (set end_text "Please use the InstallThor script for a first-time installation.")
  441.                         (abort end_text)
  442.                     )
  443.                 )
  444.             )
  445.         )
  446.     )
  447.     ; Else
  448.     (
  449.         (if (exists "BBSData:global.config" (noreq))
  450.             ; Then
  451.             (
  452.                 (set BBSData_Dir (expandpath "BBSData:"))
  453.             )
  454.             ; Else
  455.             (
  456.                 (set end_text "Please use the InstallThor script for a first-time installation.")
  457.                 (abort end_text)
  458.             )
  459.         )
  460.     )
  461. )
  462.  
  463. ;**********************************************
  464. ;** Move ARexx scripts to another directory..**
  465. ;**********************************************
  466.  
  467. (if (askbool
  468.         (prompt
  469.             "The THOR ARexx script distribution has changed. "
  470.             "The old directory with ARexx scripts can be moved "
  471.             "to a Rexx_Old directory. \n\n"
  472.             "Press 'Yes' to continue with backup of old ARexx scripts.")
  473.         (help
  474.             "The installer has determined that you may already have a " 
  475.             "copy of Thor installed on your system. "
  476.             "ARexx files from a previous installation can be moved to "
  477.             "a safe directory."
  478.         )
  479.         (default 1)
  480.     )
  481.     ; Then
  482.     ( 
  483.         (makedir "THOR:Rexx_Old")
  484.         (copyfiles
  485.             (source "Thor:rexx")
  486.             (dest "THOR:rexx_old")
  487.             (all)
  488.         )
  489.         (working omp "Deleting old ARexx files...")
  490.         (run "Delete THOR:rexx/~(postinglists|#?.cfg|#?.adr) all")
  491.     )
  492. )
  493.  
  494.  
  495. ;**********************************************
  496. ;** Hostile deletion of old files here.. ******
  497. ;**********************************************
  498.  
  499. (expert_level)
  500.  
  501. (if (= V3_Update no)
  502.     (
  503.         (if (askbool
  504.                 (prompt "Several old files left over from the the THOR 1.x" newline
  505.                     "releases are now obsolete and should be deleted." newline
  506.                     "This applies to the following directories: " newline
  507.                     "THOR:bin, THOR:s, THOR:libs and THOR:Scripts. " newline
  508.                     "If you have made any ARexx-scripts for Thor 1.xx,\n"
  509.                     "they might not work anymore. Check out the new\n"
  510.                     "ARexx-documentation and change your scripts accordingly.\n\n"
  511.                     "You might want to make a backup of personal files " newline
  512.                     "before proceeding." newline
  513.                     "Press 'Yes' to continue with deletion of obsolete files")
  514.                 (help
  515.                     "The installer has determined that you may already have a " 
  516.                     "copy of Thor installed on your system. "
  517.                     "Several files have changed and should be deleted since they "
  518.                     "will not function correctly with this release of THOR. "
  519.                 )
  520.                 (default 1)
  521.             )
  522.             ; Then
  523.             ( 
  524.                 (run "Delete THOR:ThorStat#?")
  525.                 (run "Delete THOR:THOR.history")
  526.                 (run "Delete THOR:libs/#?")
  527.                 (run "Delete THOR:bin/#?")
  528.                 (run "Delete THOR:s/#?")
  529.                 (run "Delete THOR:Scripts/#?")
  530.                 (run "Delete THOR:#?guide#?")
  531.                 (run "Delete THOR:THOR")
  532.                 (run "Rename THOR:THOR.info THOR:THOR.old.info")
  533.                 (run "Delete THOR:THOR.info")
  534.                 (run "Delete libs:bbsread.library")
  535.             )
  536.         )
  537.     )
  538. )
  539.  
  540. (run "Rename THOR:THOR.info THOR:THOR.old.info")
  541. (run "Rename THOR:ConfigTHOR.info THOR:ConfigTHOR.old.info")
  542. (run "Rename THOR:ConnectTHOR.info THOR:ConnectTHOR.old.info")
  543. (run "Delete libs:bbsread.library")
  544. (run "Delete libs:bbsreadcnv2.library")
  545. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;(run "Delete libs:utgui.library")
  546. (run "Delete l:bbsread-handler")
  547. (run "Delete l:bbsreadrexx-handler")
  548. (run "Delete THOR:bin/initsoup")
  549. (run "Delete THOR:bin/configuucp")
  550.  
  551. ;******************
  552. ;** Locale stuff **
  553. ;******************
  554.  
  555. (default_level)
  556.  
  557. (set catalog
  558.    (askoptions
  559.       (prompt "What languages would you like to install ?\n"
  560.             "English is the built-in language.")
  561.       (help
  562.             "This will install locale files for other languages than English. "
  563.             "You can set the prefered language on Workbench and in Thor by"
  564.             "using the prefs:locale tool." newline @askchoice-help
  565.       )
  566.       (choices "Norsk" "Dansk" "Svenska" "Deutsch" "Français" "Italiano" "Nederlands")
  567.       (default 0)
  568.    )
  569. )
  570.  
  571. ; Delete previous installed catalog files.
  572.  
  573. (if (= V3_Update yes)
  574.     (
  575.         (run "delete thor:catalogs all")
  576.     )
  577. )
  578.  
  579. (makedir "thor:catalogs")
  580.  
  581. (if (bitand 1 catalog)
  582.     (copyfiles
  583.         (source "Thor_Install:catalogs/norsk")
  584.         (dest "thor:catalogs/norsk")
  585.         (all)
  586.     )
  587. )
  588.  
  589. (if (bitand 2 catalog)
  590.     (copyfiles
  591.         (source "Thor_Install:catalogs/dansk")
  592.         (dest "thor:catalogs/dansk")
  593.         (all)
  594.     )
  595. )
  596.  
  597. (if (bitand 4 catalog)
  598.     (copyfiles
  599.         (source "Thor_Install:catalogs/svenska")
  600.         (dest "thor:catalogs/svenska")
  601.         (all)
  602.     )
  603. )
  604.  
  605. (if (bitand 8 catalog)
  606.     (copyfiles
  607.         (source "Thor_Install:catalogs/deutsch")
  608.         (dest "thor:catalogs/deutsch")
  609.         (all)
  610.     )
  611. )
  612.  
  613. (if (bitand 16 catalog)
  614.     (copyfiles
  615.         (source "Thor_Install:catalogs/français")
  616.         (dest "thor:catalogs/français")
  617.         (all)
  618.     )
  619. )
  620.  
  621. (if (bitand 32 catalog)
  622.     (copyfiles
  623.         (source "Thor_Install:catalogs/italiano")
  624.         (dest "thor:catalogs/italiano")
  625.         (all)
  626.     )
  627. )
  628.  
  629. (if (bitand 64 catalog)
  630.     (copyfiles
  631.         (source "Thor_Install:catalogs/nederlands")
  632.         (dest "thor:catalogs/nederlands")
  633.         (all)
  634.     )
  635. )
  636.  
  637. ;***********************************
  638. ;***** GET FIRST DISK IN HERE ******
  639. ;***********************************
  640.  
  641. ; first copy over the stuff
  642. (working omp "Decompressing and copying Thor files.")
  643.  
  644. (run "Thor_Install:lha -a x Thor_Install:thor.lha THOR:" )
  645.  
  646. ;*********************
  647. ;** reqtools.libary **
  648. ;*********************
  649.  
  650. (copylib
  651.     (prompt "Copying ReqTools library")
  652.     (help "This will copy the ReqTools library." newline @copylib-help)
  653.     (source "Thor_Install:reqtools.library")
  654.     (dest "libs:")
  655. )
  656.  
  657. ;************************
  658. ;**  Copy the keyfile  **
  659. ;************************
  660. (if (exists "Thor_Install:THOR.key" (noreq))
  661. ; Then
  662.     (copyfiles
  663.         (source "Thor_Install:THOR.key")
  664.         (dest "THOR:")
  665.     )
  666. )
  667.         
  668. ;**********************************************
  669. ;* Convert the database to the new 2.0 format *
  670. ;**********************************************
  671.  
  672. (run "thor:bin/InitCharsets")
  673.  
  674. (expert_level)
  675.  
  676. (if (= V3_Update no)
  677.     (
  678.         (message newline "The installer will now convert and upgrade the "
  679.         newline "message database to the new 2.0 format."
  680.         newline "This might take some time, so please be patient.")
  681.         (run "Avail flush")
  682.         (set Running (run "Thor:bin/basemanager convert >con:0/0/640/200/Converting/AUTO/CLOSE/WAIT"))
  683.         (if (<> 0 Running)
  684.         (
  685.             ((set end_text "Conversion of your old database failed." newline "Please take notice of the error message shown.")
  686.             (abort end_text)))
  687.         )
  688.     )
  689.     (set failed (run "thor:bin/initarc"))
  690.     (if (<> 0 failed)
  691.         (
  692.             ((set end_text "Installation failed.\nIf you received any error message,\nplease write this down and send us\na mail about the problem.")
  693.             (abort end_text))
  694.         )
  695.     )
  696. )
  697.  
  698. (if (exists "Thor_Install:bin/parseqwk" (noreq))
  699.     ; Then
  700.     (
  701.         (set bbspack 1)
  702.     )
  703.     ; Else
  704.     (
  705.         (if    (askbool
  706.                 (prompt newline 
  707.                                 "Would you like to install the modules for "
  708.                                 "QWK, Fido, Hippo, Bluewave, ABBS/MBBS and Omen "
  709.                                 "to be used with Bulletin Board Systems?\n\n "
  710.                                 "(you will be able to select which modules to "
  711.                                 "install later in this installation procedure).")
  712.                 (help newline
  713.                                 "This section of the installation is dedicated "
  714.                                 "to installation of some common formats "
  715.                                 "required if you want to use THOR with BBSes.\n\n"
  716.                                 "Select YES if you want to continue with this "
  717.                                 "installation, otherwise NO")
  718.                 (default 1)
  719.             )
  720.             ; Then 
  721.             (
  722.                 (set bbsfile 
  723.                     (askfile
  724.                         (prompt (cat "Please select the BBS archive for THOR 2.3. "
  725.                                 "(Usually named '"#bbspackname"').\n\n"
  726.                                 "It will be unarchived automatically."))
  727.                         (help @askfile-help)
  728.                         (default "sys:")
  729.                     )
  730.                 )
  731.                 ; verify that the file exists
  732.                 (if (exists bbsfile)
  733.                     (
  734.                         (set runfile (cat runfile "Thor_Install:lha -a x " quote bbsfile quote " Thor_Install:"))
  735.                         (set failed (run runfile))
  736.                         (if (<> 0 failed)
  737.                             (
  738.                                 ((set failed_text "Unarchiving of the BBS archive failed.")
  739.                                     (message end_text))
  740.                             )
  741.                             ; Else
  742.                             (
  743.                                 (set bbspack 1)
  744.                             )
  745.                         )
  746.                     )
  747.                 )
  748.             )
  749.         )
  750.     )
  751. )
  752.  
  753. (if (exists "Thor_Install:bin/gettcp" (noreq))
  754.     ; Then
  755.     (
  756.         (set inetpack 1)
  757.     )
  758.     ; Else
  759.     (
  760.         (if    (askbool
  761.                 (prompt newline 
  762.                                 "Would you like to install the modules for "
  763.                                 "UUCP, SOUP, NNTP, SMTP and POP3 "
  764.                                 "to be used with Internet?\n\n"
  765.                                 "(you will be able to select which modules to "
  766.                                 "install later in this installation procedure).")
  767.                 (help newline
  768.                                 "This section of the installation is dedicated "
  769.                                 "to installation of some common formats "
  770.                                 "required if you want to use THOR with Internet.\n\n"
  771.                                 "Select YES if you want to continue with this "
  772.                                 "installation, otherwise NO")
  773.                 (default 1)
  774.             )
  775.             ; Then 
  776.             (
  777.                 (set inetfile 
  778.                     (askfile
  779.                         (prompt (cat  
  780.                                 "Please select the Internet archive for THOR 2.3\n"
  781.                                 "(Usually named '"#inetpackname"').\n\n"
  782.                                 "It will be unarchived automatically."))
  783.                         (help @askfile-help)
  784.                         (default "sys:")
  785.                     )
  786.                 )
  787.                 ; verify that the file exists
  788.                 (if (exists inetfile)
  789.                     (
  790.                         (set runfile2 (cat runfile2 "Thor_Install:lha -a x " quote inetfile quote " Thor_Install:"))
  791.                         (set failed (run runfile2))
  792.                         (if (<> 0 failed)
  793.                             (
  794.                                 ((set failed_text "Unarchiving of the Internet archive failed.")
  795.                                     (message end_text))
  796.                             )
  797.                             ; Else
  798.                             (
  799.                                 (set inetpack 1)
  800.                             )
  801.                         )
  802.                     )
  803.                 )
  804.             )
  805.         )
  806.     )
  807. )
  808.  
  809. (if (= bbspack 1)
  810.     (
  811.         (set bbs_type
  812.            (askoptions
  813.               (prompt
  814.                         "Please select which BBS modules "
  815.                         "you want to install.")
  816.               (help
  817.                     "What system type for BBS usage that should be "
  818.                     "installed can be selected here."
  819.               )
  820.  
  821.               (choices
  822.                     "QWK        - Normal QWK"
  823.                     "Fido       - Normal Fidonet"
  824.                     "BlueWave   - Normal BlueWave"
  825.                     "ABBS       - Normal ABBS"
  826.                     "ABBS_QWK   - ABBS with QWK support"
  827.                     "MBBS       - Normal MBBS"
  828.                     "Hippo/BBBS - Normal Hippo V2 and Hippo on BBBS"
  829.                     "Omen       - Normal Omen"
  830.               )
  831.               (default -1)
  832.            )
  833.         )
  834.         (copyfiles
  835.             (source "Thor_Install:scripts")
  836.             (dest "THOR:scripts")
  837.             (pattern "#?BBS#?")
  838.         )
  839.         (if (bitand 1 bbs_type)
  840.             (
  841.                 (copyfiles
  842.                     (source "Thor_Install:bin")
  843.                     (dest "THOR:bin")
  844.                     (pattern "#?QWK")
  845.                 )
  846.                 (copyfiles
  847.                     (source "Thor_Install:s/cfgqwk")
  848.                     (dest "THOR:s")
  849.                 )
  850.                 (execute "thor:s/cfgqwk")
  851.             )
  852.         )
  853.         (if (bitand 2 bbs_type)
  854.             (
  855.                 (copyfiles
  856.                     (source "Thor_Install:bin")
  857.                     (dest "THOR:bin")
  858.                     (pattern "#?FIDO")
  859.                 )
  860.                 (copyfiles
  861.                     (source "Thor_Install:s")
  862.                     (dest "THOR:s")
  863.                     (pattern "cfgfido#?")
  864.                 )
  865.                 (execute "thor:s/cfgfido")
  866.                 (execute "thor:s/cfgfido_export")
  867.             )
  868.         )
  869.         (if (bitand 4 bbs_type)
  870.             (
  871.                 (copyfiles
  872.                     (source "Thor_Install:bin")
  873.                     (dest "THOR:bin")
  874.                     (pattern "#?BLUE")
  875.                 )
  876.                 (copyfiles
  877.                     (source "Thor_Install:s/cfgblue")
  878.                     (dest "THOR:s")
  879.                 )
  880.                 (execute "thor:s/cfgblue")
  881.             )
  882.         )
  883.         (if (bitand 8 bbs_type)
  884.             (
  885.                 (copyfiles
  886.                     (source "Thor_Install:bin/packambbs")
  887.                     (dest "THOR:bin")
  888.                 )
  889.                 (copyfiles
  890.                     (source "Thor_Install:bin/parsemsg")
  891.                     (dest "THOR:bin")
  892.                 )
  893.                 (copyfiles
  894.                     (source "Thor_Install:s/cfgabbs")
  895.                     (dest "THOR:s")
  896.                 )
  897.                 (execute "thor:s/cfgabbs")
  898.             )
  899.         )
  900.         (if (bitand 16 bbs_type)
  901.             (
  902.                 (copyfiles
  903.                     (source "Thor_Install:bin")
  904.                     (dest "THOR:bin")
  905.                     (pattern "#?QWK")
  906.                 )
  907.                 (copyfiles
  908.                     (source "Thor_Install:s/cfgabbs_qwk")
  909.                     (dest "THOR:s")
  910.                 )
  911.                 (execute "thor:s/cfgabbs_qwk")
  912.             )
  913.         )
  914.         (if (bitand 32 bbs_type)
  915.             (
  916.                 (copyfiles
  917.                     (source "Thor_Install:bin/packambbs")
  918.                     (dest "THOR:bin")
  919.                 )
  920.                 (copyfiles
  921.                     (source "Thor_Install:bin/parsemsg")
  922.                     (dest "THOR:bin")
  923.                 )
  924.                 (copyfiles
  925.                     (source "Thor_Install:s/cfgmbbs")
  926.                     (dest "THOR:s")
  927.                 )
  928.                 (execute "thor:s/cfgmbbs")
  929.             )
  930.         )
  931.         (if (bitand 64 bbs_type)
  932.             (
  933.                 (copyfiles
  934.                     (source "Thor_Install:bin")
  935.                     (dest "THOR:bin")
  936.                     (pattern "#?hippo")
  937.                 )
  938.                 (copyfiles
  939.                     (source "Thor_Install:s/cfghippo")
  940.                     (dest "THOR:s")
  941.                 )
  942.                 (copyfiles
  943.                     (source "Thor_Install:s/cfgbbbs")
  944.                     (dest "THOR:s")
  945.                 )
  946.                 (execute "thor:s/cfghippo")
  947.                 (execute "thor:s/cfgbbbs")
  948.             )
  949.         )
  950.         (if (bitand 128 bbs_type)
  951.             (
  952.                 (copyfiles
  953.                     (source "Thor_Install:bin")
  954.                     (dest "THOR:bin")
  955.                     (pattern "#?omen")
  956.                 )
  957.                 (copyfiles
  958.                     (source "Thor_Install:s/cfgomen")
  959.                     (dest "THOR:s")
  960.                 )
  961.                 (execute "thor:s/cfgomen")
  962.             )
  963.         )
  964.     )
  965. )
  966.  
  967. (if (= inetpack 1)
  968.     (
  969.         (set bbs_type
  970.            (askoptions
  971.               (prompt
  972.                         "Please select which Internet modules "
  973.                         "you want to install.")
  974.               (help
  975.                     "What system type for Internet usage that should be "
  976.                     "installed can be selected here."
  977.               )
  978.  
  979.               (choices
  980.                         "TCP/TCP_ONLINE - POP3, SMTP and NNTP"
  981.                         "SOUP/UQWK_SOUP - Normal SOUP and SOUP w/uqwk"
  982.                         "UUCP           - Normal UUCP"
  983.               )
  984.               (default -1)
  985.            )
  986.         )
  987.  
  988.         (copyfiles
  989.             (source "Thor_Install:libs/utnet.library")
  990.             (dest "THOR:libs")
  991.         )
  992.  
  993.         (copyfiles
  994.             (source "Thor_Install:bin/InitRFC")
  995.             (dest "THOR:bin")
  996.         )
  997.  
  998.         (copyfiles
  999.             (source "Thor_Install:scripts")
  1000.             (dest "THOR:scripts")
  1001.             (pattern "#?UQWK#?")
  1002.         )
  1003.  
  1004.         (if (bitand 1 bbs_type)
  1005.             (
  1006.                 (copyfiles
  1007.                     (source "Thor_Install:bin")
  1008.                     (dest "THOR:bin")
  1009.                     (pattern "#?(UUCP|TCP)")
  1010.                 )
  1011.                 (copyfiles
  1012.                     (source "Thor_Install:")
  1013.                     (dest "THOR:")
  1014.                     (pattern "ConnectTHOR#?")
  1015.                 )
  1016.                 (copyfiles
  1017.                     (source "Thor_Install:s/cfgtcp")
  1018.                     (dest "THOR:s")
  1019.                 )
  1020.                 (copyfiles
  1021.                     (source "Thor_Install:s/cfgtcp_online")
  1022.                     (dest "THOR:s")
  1023.                 )
  1024.                 (execute "thor:s/cfgtcp")
  1025.                 (execute "thor:s/cfgtcp_online")
  1026.                 (set classact 1)
  1027.                 (set tcptype 1)
  1028.             )
  1029.         )
  1030.         (if (bitand 2 bbs_type)
  1031.             (
  1032.                 (copyfiles
  1033.                     (source "Thor_Install:bin")
  1034.                     (dest "THOR:bin")
  1035.                     (pattern "#?SOUP")
  1036.                 )
  1037.                 (copyfiles
  1038.                     (source "Thor_Install:s")
  1039.                     (dest "THOR:s")
  1040.                     (pattern "#?soup")
  1041.                 )
  1042.                 (makedir "THOR:unix")
  1043.                 (copyfiles
  1044.                     (source "Thor_Install:unix")
  1045.                     (dest "THOR:unix")
  1046.                     (all)
  1047.                 )
  1048.                 (execute "thor:s/cfguqwk_soup")
  1049.                 (execute "thor:s/cfgsoup")
  1050.             )
  1051.         )
  1052.         (if (bitand 4 bbs_type)
  1053.             (
  1054.                 (copyfiles
  1055.                     (source "Thor_Install:bin")
  1056.                     (dest "THOR:bin")
  1057.                     (pattern "#?UUCP")
  1058.                 )
  1059.                 (copyfiles
  1060.                     (source "Thor_Install:s/cfguucp")
  1061.                     (dest "THOR:s")
  1062.                 )
  1063.                 (execute "thor:s/cfguucp")
  1064.                 (set uucptype 1)
  1065.             )
  1066.         )
  1067.     )
  1068. )
  1069.  
  1070. (if (= classact 1)
  1071.     (
  1072.         (install-classact)
  1073.     )
  1074. )
  1075.  
  1076. ;*********************************************
  1077. ;** Copy configfiles from BBSDATA: to THOR: **
  1078. ;*********************************************
  1079.  
  1080. (if (= V3_Update no)
  1081.     (
  1082.         (run "copy bbsdata:visual.config thor:visual.config")
  1083.         (run "copy bbsdata:global.config thor:global.config")
  1084.         (run "copy bbsdata:fse.config thor:fse.config")
  1085.     )
  1086. )
  1087.  
  1088. ;***********
  1089. ;** Fonts **
  1090. ;***********
  1091.     
  1092. (if (= V3_Update no)
  1093.     (
  1094.         (copyfiles
  1095.             (prompt "Choose the fonts to install with Thor" newline "These are not required for Thor to run" )
  1096.             (help "This will copy the default font files for Thor." newline @copyfiles-help)
  1097.             (source "Thor_Install:Fonts")
  1098.             (dest "Fonts:")
  1099.             (fonts)
  1100.             (choices "Grn" "Thin609" "Thin611" "Thin711")
  1101.             (confirm)
  1102.         )
  1103.     )
  1104. )
  1105.  
  1106. ;*****************************
  1107. ;****** Install icons ********
  1108. ;*****************************
  1109.  
  1110. (set icon
  1111.     (askchoice
  1112.         (prompt
  1113.             "Please select what icon-set to install with THOR.\n")
  1114.         (help
  1115.             "If you use MagicWB on your Workbench, "
  1116.             "you might want to install the special MagicWB icons.\n\n"
  1117.             "Likewise, if you use NewIcons on your Workbench, "
  1118.             "you might want to install the special NewIcons icons.")
  1119.         (choices "Normal icons" "MagicWB icons" "NewIcons icons")
  1120.         (default 0)
  1121.     )
  1122. )
  1123.  
  1124. (if (= icon 1)
  1125.     (
  1126.         (copyfiles
  1127.             (prompt "Copying MagicWB icon files")
  1128.             (source "Thor_Install:MWBIcons")
  1129.             (dest "Thor:")
  1130.             (pattern "~(THOR.guide.info)")
  1131.             (nogauge)
  1132.         )
  1133.         (copyfiles
  1134.             (prompt "Copying MagicWB icon files")
  1135.             (source "Thor_Install:MWBIcons/THOR.guide.info")
  1136.             (dest "Thor:Docs")
  1137.             (newname "THOR.guide.info")
  1138.             (nogauge)
  1139.         )
  1140.         (copyfiles
  1141.             (prompt "Copying MagicWB icon files")
  1142.             (source "Thor_Install:MWBIcons/THOR.guide.info")
  1143.             (dest "Thor:Docs")
  1144.             (newname "ConfigTHOR.guide.info")
  1145.             (nogauge)
  1146.         )
  1147.         (copyfiles
  1148.             (prompt "Copying MagicWB icon files")
  1149.             (source "Thor_Install:MWBIcons/THOR.guide.info")
  1150.             (dest "Thor:Docs")
  1151.             (newname "ARexx.guide.info")
  1152.             (nogauge)
  1153.         )
  1154.         (copyfiles
  1155.             (prompt "Copying MagicWB icon files")
  1156.             (source "Thor_Install:MWBIcons/THOR.guide.info")
  1157.             (dest "Thor:Docs")
  1158.             (newname "BBSReadRexx.guide.info")
  1159.             (nogauge)
  1160.         )
  1161.         (copyfiles
  1162.             (prompt "Copying MagicWB icon files")
  1163.             (source "Thor_Install:MWBIcons/THOR.guide.info")
  1164.             (dest "Thor:Docs")
  1165.             (newname "THOR_Rexx.guide.info")
  1166.             (nogauge)
  1167.         )
  1168.         (copyfiles
  1169.             (prompt "Copying MagicWB icon files")
  1170.             (source "Thor_Install:MWBIcons/THOR.guide.info")
  1171.             (dest "Thor:Docs")
  1172.             (newname "Installation.guide.info")
  1173.             (nogauge)
  1174.         )
  1175.     )
  1176. )
  1177. (if (= icon 2)
  1178.     (
  1179.         (copyfiles
  1180.             (prompt "Copying NewIcons icon files")
  1181.             (source "Thor_Install:NewIcons")
  1182.             (dest "Thor:")
  1183.             (pattern "~(THOR.guide.info)")
  1184.             (nogauge)
  1185.         )
  1186.         (copyfiles
  1187.             (prompt "Copying NewIcons icon files")
  1188.             (source "Thor_Install:NewIcons/THOR.guide.info")
  1189.             (dest "Thor:Docs")
  1190.             (newname "THOR.guide.info")
  1191.             (nogauge)
  1192.         )
  1193.         (copyfiles
  1194.             (prompt "Copying NewIcons icon files")
  1195.             (source "Thor_Install:NewIcons/THOR.guide.info")
  1196.             (dest "Thor:Docs")
  1197.             (newname "ConfigTHOR.guide.info")
  1198.             (nogauge)
  1199.         )
  1200.         (copyfiles
  1201.             (prompt "Copying NewIcons icon files")
  1202.             (source "Thor_Install:NewIcons/THOR.guide.info")
  1203.             (dest "Thor:Docs")
  1204.             (newname "ARexx.guide.info")
  1205.             (nogauge)
  1206.         )
  1207.         (copyfiles
  1208.             (prompt "Copying NewIcons icon files")
  1209.             (source "Thor_Install:NewIcons/THOR.guide.info")
  1210.             (dest "Thor:Docs")
  1211.             (newname "BBSReadRexx.guide.info")
  1212.             (nogauge)
  1213.         )
  1214.         (copyfiles
  1215.             (prompt "Copying NewIcons icon files")
  1216.             (source "Thor_Install:NewIcons/THOR.guide.info")
  1217.             (dest "Thor:Docs")
  1218.             (newname "THOR_Rexx.guide.info")
  1219.             (nogauge)
  1220.         )
  1221.         (copyfiles
  1222.             (prompt "Copying NewIcons icon files")
  1223.             (source "Thor_Install:NewIcons/THOR.guide.info")
  1224.             (dest "Thor:Docs")
  1225.             (newname "Installation.guide.info")
  1226.             (nogauge)
  1227.         )
  1228.     )
  1229. )
  1230.  
  1231. (if (exists "env:sys/def_drawer.info" (noreq))
  1232.     (copyfiles
  1233.         (prompt "Copying default drawer icon")
  1234.         (help "This will copy the default drawer icon." newline @copyfiles-help)
  1235.         (source "env:sys/def_drawer.info")
  1236.         (dest "Thor:")
  1237.         (newname "Docs.info")
  1238.         (infos)
  1239.     )
  1240. )
  1241.  
  1242. ;*****************************
  1243. ;***** WE ARE ALMOST DONE ****
  1244. ;*****************************
  1245.  
  1246. ; make sure that default-dir is pointing to the right place
  1247. (set @default-dest Thor_Dir)
  1248.     
  1249. ; final message for our viewers
  1250.     (set end_text (cat "Hope you like THOR! Don't hesitate to "
  1251.                     "send us comments, bugreports and suggestions."))
  1252.  
  1253. (makeassign "Thor_Install")     
  1254.  
  1255. (if (= V3_Update yes)
  1256.     (
  1257.         (makeassign "BBSData")     
  1258.     )
  1259. )
  1260.  
  1261. ; now for the exit
  1262.     (exit end_text)
  1263.  
  1264.